System and method for managing distribution of media files

ABSTRACT

A system, method and technique are provided for managing distribution of digital images and other media. A host computer may store a library of media files, including digital images, such as those captured by a digital camera of a user. One or more applications may run on the host computer, or on an Internet service that communicates with the host computer, in order to enable management, sharing and distribution of images stored on the host computer. A remote device may be operated by the user or guest to cause remotely viewed images that reside on the host computer to be transferred to a print service or other third-party service with a corresponding network location.

RELATED APPLICATIONS

This application is a Continuation of U.S. application Ser. No.11/422,419, filed Jun. 6, 2006, titled SYSTEM AND METHOD FOR MANAGINGDISTRIBUTION OF MEDIA FILES, which is a continuation-in-part of thefollowing, co-pending U.S. patent applications: U.S. patent applicationSer. No. 10/888,606, entitled “System and Method for Enabling theEstablishment of a Personal Network,” filed Jul. 9, 2004; U.S. patentapplication Ser. No. 10/888,633, entitled “System and Method forCombining Memory Resources for Use on a Personal Network,” filed Jul. 9,2004; and U.S. patent application Ser. No. 10/888,745, entitled “Systemand Method for Remotely Controlling Network Resources,” filed Jul. 9,2004, now U.S. Pat. No. 7,937,484; application Ser. No. 11/422,419 alsoclaims benefit of priority to provisional U.S. Provisional ApplicationNo. 60/688,021, entitled “System and Method for Managing Distribution ofMedia Files,” filed Jun. 6, 2005. All of the aforementioned priorityapplications are hereby incorporated by reference in their entirety forall purposes.

TECHNICAL FIELD

The disclosed embodiments relate generally to the field of digitalphotography, and more particularly, to managing the distribution ofdigital photographs.

BACKGROUND

There are an increasingly large number of devices that have networkconnectivity. Over the years, network connectivity has been extended toappliances such as refrigerators, home entertainment centers, andinteractive box sets for use with television sets, digital cameras, andcell phones. With the evolution of these devices, there have beendevelopments in home networks. For example, WiFi technology enablesusers to interconnect various network enabled devices wirelessly to formtheir own local area network. Various services and applicationscurrently exist with the goal of establishing data connectivity betweendifferent network locations. The growth of the Internet and other typesof networks has contributed to the numerous networking applications thatcurrently exist.

There is also an interest in extending network connectivity to devicesthat can roam. These devices include cell phones, personal digitalassistants (PDAs), and stations that can be assembled on vehicles orairplanes. While wireless networks for such roaming devices exist, thesenetworks tend to have limited bandwidth, and can be expensive. Inaddition, it is difficult for operators of such devices to interact withnetworks, given that these devices often have poor user-interfacefeatures, and limited processing/memory resources for tasks that areoften desired from them.

Currently, there are various interoperability issues when differenttypes of network enabled devices are coupled. Often, the differentdevices operate on incompatible platforms or operating systems. This cancause problems in how these devices share data with one another.Furthermore, connected devices may use different data types (.WAV versusMPEG) and/or data formats that hinder the user's ability to share dataamongst devices. As an example, the size of the screen display on a cellphone is typically too small to render images from a digital camera,even if the cell phone is camera-enabled. Often, the result is that whenusers want to share data amongst connected devices, that user mustperform numerous manual steps, such as manually converting data formats.

Digital photography in particular has become more popular because thenumber of devices that provide image capturing functionality hasincreased dramatically. As digital photographs have become morecommonplace, the desire of users to share such photographs has alsodramatically increased. Now, users can almost instantly share digitalimages by sending them as attachments to emails or as Multimedia MessageService (MMS) images. However, digital images occupy considerablememory, so not all devices can handle images readily, at least with highresolution. Furthermore, the transmission of large image files isburdensome. Lastly, printing digital images remains costly. Manyservices exist for which users can transmit digital images (throughemail) for high-quality printing. These services allow the picture takerto invite others to see and order prints by first storing and making thedigital images available on an intermediate server. Invitees can perusethe picture taker's folder and order their own pictures through the sameprint service.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for the management and distribution of mediafiles, under an embodiment of the invention.

FIG. 2 illustrates hardware and process elements of a management anddistribution system, under an embodiment of the invention.

FIG. 3 illustrates a method for managing distribution of media files ona host system under an embodiment of the invention.

FIG. 4 provides a more detailed method by which digital photographs canbe distributed from a host system for consumption and used remotely,including by guests, under an embodiment of the invention.

FIG. 5 illustrates an example of content and information generated on aremote device by the host system transmitting image data and actiondata, under an embodiment of the invention.

FIG. 6 illustrates another example of how an embodiment of the inventionmay be implemented, according to an embodiment of the invention.

DETAILED DESCRIPTION

Embodiments described herein provide for a system, method and techniquefor managing distribution of digital images and other media. In anembodiment, a host computer may store a library of media files,including digital images, such as those captured by a digital camera ofa user. One or more applications may run on the host computer, or on anInternet service that communicates with the host computer, in order toenable management, sharing and distribution of images stored on the hostcomputer.

Additionally, an embodiment provides the ability for a remote user tospecify instructions that result in operations or actions beingperformed on digital images stored on the host computer. These actionsmay be previously permitted or enabled to the knowledge of an end userof the host computer (such as a person in control of the digital images,or an owner of a personal computer on which the images are stored)acting from a remote location, such as on a roaming device or from theInternet. In an embodiment, the user of the remote device may be thesame person as the user of the host system, although other embodimentsprovide that the user of the host system enables numerous guests to haveaccess and perform the actions. The guest may be an end user that isauthorized to view the images on the host computer.

In an embodiment, a request may be received from a device that is remoteto the host computer. The response to the request may include image datato enable the remote device to render or make viewable a set of imagesstored on a host computer. A user of the remote device may be enabled tospecify one or more actions that are to be performed for images forwhich he/she is provided image data. In one embodiment, the remotedevice may be operated to specify or elect one or more programmaticactions that are to be performed on the host computer using media filesviewed or selected by the remote device user. The host system user mayenable or permit the remote device user to perform the actions. Thus,the user of the remote device is enabled to select one or more images inthe set for which the actions are to be performed. The remote devicecommunicates the election for the action to be performed, and the hostsystem performs the actions (or at least initiates performance of theactions) responsively.

The actions may include sending images selected by the user to aparticular network location using the Internet and/or other datanetworks. In one embodiment, the actions may include enabling the remotedevice user to send copies of the media files to a third-partycommercial service, such as a service for printing or producing otherforms of media.

The term “image data” means any data that can be rendered or used toformulate a graphic rendition of another image or of a media file (suchas video). For example, an output of image data may correspond to a“thumb nail” image, an image with reduced pixel density as compared toan original, or an equivalent copy of the original.

While one or more embodiments described herein is specific to digitalphotographs, other embodiments may manage, distribute and enable theremote action of other types of media files, including video and/oraudio files.

A host computer is any network enabled device on which media files arestored and managed. In one embodiment, the host computer is a personalcomputer that has media applications and a media library, such asfolders in which digital photographs are stored. An example of a hostcomputer is a standard desktop machine that operates MICROSOFT MEDIACENTER and/or proprietary software provided by ORB NETWORKS.

Numerous embodiments and examples recited in this application specifythe use of digital photographs (still images) as the type of media filein use. In addition to digital photographs, other types of media filesare contemplated for use with embodiments of the invention. Examples ofsuch other media files include video files, audio/video files anddynamic presentations containing photographs and other media (e.g. slideshow).

An embodiment such as described may be performed programmatically, or asa computer-implemented method. Programmatically means through the use ofcode, or computer-executable instructions.

In an embodiment, the actions that can be specified from the end userinclude causing or directing the host computer to transfer imagesselected by the user of the remote device to another location over theInternet and/or other networks. In one embodiment, the remote deviceuser can select to have the images transferred to, for example, athird-party commercial site that handles personal digital images, suchas a print service that generates hard copies.

A roaming device may correspond to a device that is network enabledwhile being mobile, so that it has physical locations and can usedifferent network connections to connect to the Internet. An example ofa roaming device is a smart cellular phone, a personal digital assistantwith network capabilities (e.g. WiFi or cellular), or a laptop computerthat is used with Hot Spots or other locations of Internet connectivity.

One or more embodiments described herein may be implemented usingmodules. A module may include a program, a subroutine, a portion of aprogram, or a software component or a hardware component capable ofperforming one or more stated tasks or functions. As used herein, amodule can exist on a hardware component such as a server independentlyof other modules, or a module can be a shared element or process ofother modules, programs or machines. A module may reside on one machine,such as on a client or on a server, or a module may be distributedamongst multiple machines, such as on multiple clients or servermachines.

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a computer-readablemedium. Machines shown in figures below provide examples of processingresources and computer-readable mediums on which instructions forimplementing embodiments of the invention can be carried and/orexecuted. In particular, the numerous machines shown with embodiments ofthe invention include processor(s) and various forms of memory forholding data and instructions. Examples of computer-readable mediumsinclude permanent memory storage devices, such as hard drives onpersonal computers or servers. Other examples of computer storagemediums include portable storage units, such as CD or DVD units, flashmemory (such as carried on many cell phones and personal digitalassistants (PDAs)), and magnetic memory. Computers, terminals, networkenabled devices (e.g. mobile devices such as cell phones) are allexamples of machines and devices that utilize processors, memory, andinstructions stored on computer-readable mediums.

System Overview

FIG. 1 illustrates a system 100 for the management and distribution ofmedia files, under an embodiment of the invention. The system 100includes a host system 130 and a network service 110, which combine tomanage and distribute media files stored in one or more memorycomponents 118 on or available to the system 100. Media files 148 thatare to be made available to the management and distribution system 100may be identified and/or stored in a distribution library 146 on the oneor more memory components 118 managed by the host system 130.

In one embodiment, the host system 130 may be in the form of a personalnetwork, as described in U.S. patent application Ser. No. 10/888,606(incorporated by reference herein). The personal network refers to anetwork comprising one or more network enabled devices of a user. In animplementation of a personal network, each device may be configured withsoftware or otherwise to be aware of the status of another device.Furthermore, each device in the personal network may have knowledge ofthe functionality and capability of other devices that are pertinent toit. The personal network may extend across multiple networks, andinclude memory components on third-party sites, or devices thatcommunicate with one another across the Internet.

In an embodiment, the management and distribution system 100 maycommunicate with a remote device 120 to enable the remote device to viewmedia stored on the host system 130. In one embodiment, media files(such as of digital photographs or video files) that the user wishes tomake available to the management and distribution system 100 are storedin the distribution library 146.

In one embodiment, a user of the remote device may be enabled to directthe management and distribution system 100 to perform actions on mediafiles made viewable or renderable on remote device 120. These actionsmay be enabled by the management and distribution system 100 and/or thehost system 130. Under one embodiment, these actions include the abilityof the remote device's user to direct the host system 130 to transfer orotherwise send selected media files that the remote device user hasviewed to another network location, such as a third party service. Theremote device may be enabled to select what media files are acted onfrom a set of media files presented. Alternatively, the remote devicemay be enabled to make an election of the action for the set of mediafiles presented.

In an embodiment, the network service 110 may be provided at a networkor website that is accessible from the Internet. The remote device 120may access the site of the network service 110 using a standard,commercially available web browser. For example, the network service 110may have a website and a uniform resource locator (URL) that the browserof the remote device can use. The remote device 120 may correspond to aconnected device, or a roaming device. The connected device may be anynetwork enabled terminal, such as a workstation or personal computer.The roaming device may correspond to a smart phone that uses a cellularnetwork infrastructure, or a mobile computing device using wirelessInternet connectivity (e.g. WiFi).

As will be described, an embodiment provides that the user of the remotedevice 120 is also the user of the host system 130. One scenario forsuch an embodiment may be the case where an individual may wish toaccess his or her connected desktop machine at a residence. Anotherembodiment provides that the user of the remote device 120 is not a userof the host system 130. A scenario for such an embodiment may be thecase where the user of a connected desktop computer or media centerwishes to make his or her digital photographs available to friends andfamily.

Components of the host system 130 include a media manager module 158,which interacts with the network service 110 and the distributionlibrary 146. The user of the host system 130 may select individual mediafiles 148 that are to be made accessible to the media manager module 158through association in the distribution library 146. In one embodiment,the management and distribution system 100 is for use by the user of thehost system 130, so that the distribution library 146 is only remotelyaccessible to the user of host system 130. The user can access and viewimages corresponding to his/her media files from any place whereInternet connectivity is available. For example, the user can view allmedia files in the distribution library 146 from his cell phone, WiFienabled personal digital assistant (PDA) or lap top, or remoteworkstation. The user can also direct certain actions to be performedfrom the remote location, including the transfer of media files toanother network location that is external to the network location of thehost system 110. For example, the user can transfer the media files to acommercial service that provides hard media (paper prints, coffee mugs,DVD) using digital media. Thus, an embodiment of the invention enablesthe user to remotely trigger an action to be performed on, for example,a digital photograph. The remotely triggered action may direct the mediafile to a third-party service 140. As will be described, the managementand distribution system 100 may interface with the third-party service140, so that user interaction after the action is selected is minimal,or non-existent.

In another embodiment, the distribution library 146 is made available toguests and permitted users. In such an embodiment, the host system maymaintain an access control list 142 that lists identifiers toindividuals or device users who are to be allowed access to distributionlibrary 146, or portions thereof. The user may select folders orspecific files for individual permitted users, so that two permittedusers may have access to different sets of images. A host user-interface145 may assist the user in designating images for distribution, and forproviding identifiers to permitted guests/users. In one implementation,the host user-interface 145 runs a wizard, or provides otheruser-interface prompts (e.g. icons, text-entry fields and pull-downmenus on a graphical user-interface), to enable the user to establishmedia files for designation to the distribution library 146.

According to the embodiment, network service 110 and media managementmodule 158 are part of a shared platform. As such, the media managementmodule 158 may form part of a software suite that can be installed on adesktop or media station computer of the host system user. In oneembodiment, the media management module 158 acts as a server on a clientterminal. For example, the software suite may be downloaded from a website from which network service 110 is provided. The network service 110may manage a community of host systems on which the software suite isinstalled. Once installed, the media management module 158, or someother component, may scan memory components in the user's computersystem, home network, or personal network (such as described in U.S.patent application Ser. No. 10/888,606) in order to identify media filesthat the user can make available for remote management and distribution.Additionally, embodiments provide that the media management module 158may allow the user to establish a guest list. The guest list may containidentifiers to individuals for whom the user of the host system wishesto make media files available. The host system user may be selective inidentifying what media files are to be made available to remote accessby a particular individual. The guest list may be in the form of accesscontrol list 142, retained in a registry or other data structure managedby media management module 158.

The remote device 120 may access the network service 110 using theInternet. For example, the network service 110 may be provided at a website available to the remote device 120. When the network service 110 isaccessed, the user of the remote device 120 may identify the desiredhost system 130 from the community. The remote device 120 may thengenerate a request 162 to initiate a process where select media files148 in library 146 are made available to the remote device 120.

Either one or both of the network service 110 and host system 130 mayauthenticate the remote device 120 and/or its user. In order to beauthenticated, the remote device user may specify an email address,identifier or moniker as previously designated in the access controllist 142. Based on this information, and possibly other information suchas the name, moniker, or e-mail address of the host system user, thenetwork service 110 may be able to identify host system 130 from itscommunity as the desired network destination of the remote user. Oneimplementation provides that the access control list 142 is publishedfrom host system 130 to the network service 110, and the network serviceauthenticates the remote device user and his or her ability to accessthe host system 130. In another embodiment, the network service 110 mayonly verify the identity of the user of remote device 120, and the hostsystem 130 determines what permissions (if any) the remote device userhas to view media files 148 and to specify actions that are to beperformed on media files 148. As another alternative, all of theauthentication determinations may be performed on the host system 130,after the user of the remote device identifies himself to the hostsystem 130 and/or the network service 110.

At some point during or after the process where identification of theuser of the remote device 120 and of the host system 130 is made, thenetwork service 110 initiates the request 162. The network service 110may forward request 162 to the host system 130 in the form of request164. The request 164 may contain alternative information, such as, forexample, identification information of the remote device user and/orconfirmation of the identity of the remote device user.

In response to receiving the request 164, media management module 158may access control list 142 to confirm and/or authenticate the user.Additionally, the media management module 158 may use the access controllist 142 to determine what media files the remote device user can view.The media management module 158 uses media file identificationinformation 165 provided from access control list 142 to identify mediafiles 148 from the memory components in the host system 130. In oneimplementation, the identified media files 148 were previously selectedfor remote use, and possibly for distribution to the particular user ofthe remote device 120.

Using the identified media files 148, media management module 158generates image data 166 corresponding to individual media filesidentified from the memory components 118. In one implementation,network service 110 receives image data 166 and sends correspondingimage data 168 to the remote device 120. The network service 110 maysimply relay image data 166 as corresponding image data 168, or networkservice 110 may perform some process to configure and/or format imagedata 166 into corresponding image data 168. For example, network service110 may reformat the image data 166, reduce the image data 166 toaccommodate the network bandwidth or device capabilities of the remotedevice 120, and/or simply buffer and copy the image data 166.Alternatively, some or all actions for configuring and formatting imagedata 166 may be performed on the host system 130. Furthermore, one ormore both of network service 110 or host system 130 may includecomponents for determining the capabilities of the remote device. Theimage data 168 generated from the network service 110 may be transmittedto a web browser or other rendering component on the remote device 120to generate a rendition of the media files.

In another implementation, media management module 158 communicates withthe remote device 120 directly, or at least without use of networkservice 110. For example, host system 110 may establish a direct socketcommunication channel with the remote device 120 when transmitting mediafiles to the remote device. In either case, image data 166 istransmitted and received by the remote device 120, without host system130 having to upload the image data 166. Thus, no intermediate server orcomputer is needed to permanently store digital images rendered fromimage data 166. Since no uploading is needed, the remote device 120 doesnot need to download the images either.

Numerous variations and implementations are possible for what image data166 is to contain, and how it is to be transmitted and received byremote device 120. In one implementation, image data 166 corresponds tocomplete or nearly exact renditions of select media files 148, or torepresentative renditions of those media files 148. For example, imagedata 166 may be renderable on the remote device 120 to createsubstantially exact copies of multi-megabit digital photographs. Asanother example, image data 166 may represent thumbnails or reducedimages (e.g. less resolution or image is reduced in display size). Inthe case where media files include video, the image data 166 mayrepresent a frame of the video. The image data 166 may form part of anoverall presentation, such as a slideshow or digital album or display.As another example, image data 166 may initially contain selectablethumbnails, the individual selection of which cause transport of themedia file corresponding to that selected thumbnail over to the remotedevice 120. In this way, image data 166 enables the user of the remotedevice 120 to view and comprehend media files on host system 130 thathave been made available for that user, without the need to accommodatethe entire data size of the viewed media files.

As an alternative or addition to enabling media files to be viewablefrom remote device 120, embodiments of the invention enable the user ofthe remote device 120 to instruct the host system 130 to perform actionson the media files stored within the memory components 118. One or moreactions that the user of the remote device 120 can elect to haveperformed may be specified and enabled from the management anddistribution system 100 in the form of a user-interface feature, such asa selectable icon, pull-down menu feature or are other graphic element.Data to generate the ability of the user of remote device 120 to electactions may be specified from one or both of network service 110 andhost system 130. In one embodiment, after receiving the image data 168,the remote device user can transmit an instruction 172 that specifies anenabled action and one or more selected or corresponding media files148. The action specified in the instruction 172 may correspond to thehost system 130 transporting data representing the media files to athird-party network location 140. The instruction 172 may be forwardedto the media management module 158, which acts on it. For example, thehost system 130 may send media files selected on the remote device 120to a commercial enterprise provided at a web site corresponding to thethird-party network location 140. In an example provided by FIG. 1, aprint service 140 is provided at the third-party network location. Thus,remote device user can have the host system 130 send desired media filesto the print service for printing on behalf of the remote device user.

In one embodiment, the media management module 158 also determines fromthe access control list 142 what actions, if any, the user of the remotedevice may elect to have performed. Thus, to further the exampleprovided, not all users on the guest list can have select digital imagesand/or have those selected images acted on (e.g. send selected digitalphotographs to the print service). The user of the host system 130 maybe able to specify multiple actions for any given user, such as theability for the remote device user to select one of multiple printservices, the ability for the remote device user to attach text or voicetag, or other action. The user of the host system 130 may use thegraphic user-interface 145 provided on the host system 130 to generatethe guest list, specify sets of media files or images to be madeavailable to individual guests (or groups), and/or what actionsindividual guests (or groups) will be allowed to perform. From thepresented actions, the user of remote device 120 can make a selection,resulting in action being performed on select media files residing atthe host system 130.

The image data 166 may be transferred from host system 130 to remotedevice 120 with no uploading required from the host system, and nodownloading required from the remote user. The network service 110 actsas a broker for the host system 130. In an embodiment in which the userof remote device can select transfer of media files to a commercialenterprise, the network service 110 may serve as the broker in obtainingtransactional information from the remote device user. For example, inresponse to the remote device user selecting to have image files printedat a commercial printing service, network service 110 may generate aseries of prompts to cause the remote device user to interact andprovide transactional information 182 needed to complete a transactionwith the third-party service 140. The prompts may be providedprogrammatically, at the direction of the network service 110 (or thehost system 130) to minimize of completely remove involvement by anyperson on the host system. The type of transaction information 182 thatmay be obtained for the print service 110 may include, for example,name, address, credit card information, number of prints needed, size ofprints, black and white or color, albums, other products or services andforwards the image data 166 to the remote device 120. The transactionalinformation may be forwarded to the host system 130. In response, thehost system 130 may access the third-party service 140.

Transfer to Third-Party Service

The transactional component 136 may operate with the media managementmodule 158 to transfer the media files selected from the remote device120 to the third-party service 140. In an embodiment shown by FIG. 1,the transactional component 136 may reside on the host system 130,although another embodiment may provide the transactional component tobe provided with the network service 110. In an embodiment where thethird-party service 140 is a print service, transactional information182 may necessarily accompany or precede the transmission of selectmedia file data 178, corresponding to the media files 148 selected fromthe remote device 120. The transactional component 136, and/or the mediamanagement module 158, may access and use the transactional information182 to initiate and/or complete a transaction with the third-partyservice 140. The transactional information 182 may have been previouslyentered by the host system user (either for the host system user or onbehalf of a guest), or obtained through a series of interactionsbrokered by the network service 110. The transactional information 182may include information that specifies payment method, recipient of theservice's end product, and preferences or product selection information(as specified by the remote device user, the host system user, orprofile/default/information).

Once the transaction is completed, the media management module 158 maytransfer the select media file data 178 to the service 140. The selectmedia file data 178 may correspond to data for creating rich renditionsof media files 148 selected from the remote device 120. In oneembodiment, the select media file data 178 may be transmitted to thethird-party service 140 without any uploading of the media files.Rather, one embodiment provides that a peer connection may be madedirectly with a queue of the third-party service 140 (e.g. queue forprinting images by accounts at commercial printers of digitalphotography). The queue refers to the location of the print servicewhere image files are pulled for printing on availability. For example,with many commercial print services, there is an intermediate serverthat holds images for a set duration of time. Users must upload theirimages onto the servers. In an embodiment, no uploading is required, andif there is an intermediate server, it can be bypassed. Anotheralternative provides that select media file data 178 is messaged (as anattachment or otherwise) to the print service 130.

In an embodiment, the interaction between the host system 130 and thethird-party service 140 is substantially programmatic, and without anyor much human interaction, either from the user of the remote device 120or from the user of the host system 140.

Single User Usage Example

One example of how an embodiment such as shown by FIG. 1 is the casewhere a single user operates remote device 120 and host system 130. Themedia files 148 may correspond to digital photographs. The user may useremote device 120 to remotely trigger actions to be performed on thehost system 130. For example, the user may operate a smart cell phone toview reduced images of his digital photograph library, or portionsthereof. The media management module 158 may serve to reduced images tothe user cell phone, with programmatic mechanisms to enable the user totrigger a print action. The print action causes the media managementmodule 158 to perform necessary actions for sending select digitalphotographs to a third-party print service. These actions includeaccessing the user's transactional information (such as his credit cardnumber, account information and/or home address) and filling electronicforms or fields provided by the print service 130. Any choices orselections offered by the print service 130 may be completed by themedia management module 158 using default or profile settings. Forexample, the user may have previously designated a specific photographsize in his or her profile information as the default for images thatare to be produced by the print service. The result is that the user canremotely trigger the management and distribution system 100 toprogrammatically send desired image files to the print service, and tocomplete (or at least initiate) a transaction resulting in the imagefiles being commercially printed.

Multi-User Usage Example

In another embodiment, a user of the host system 130 may share digitalphotographs or other media files with friends, family or other desiredparties and guests. Additionally, the host system user can enable hisguests to perform actions on the image files. A user can designate afolder of images to be viewable (either in full or reduced renditions)to a particular guest. The user may also elect to have the guest havecertain privileges to act on the select images. For example, each guestmay have the ability to specify that a select digital photograph betransmitted to the print service. The management and distribution system100 may act on behalf of the guest. In one implementation, networkservice 110 acts as a broker by obtaining transactional information 182through interactions with the remote device 120, including informationfor the guest to arrange payment, delivery of the print orders, anddesired quantities, size, or media for the guest's desired photographs.The transactional information is conveyed to the media management module158, or other component of host system 130, which uses the informationto communicate with the print service. An electronic order form of theprint service may be completed by host system 130 using thetransactional information. The guest's desired print order is thencompleted by the host system 130.

While an embodiment shown by FIG. 1 provides for the management anddistribution system 100 to be distributed between the host system 130and the network service 110, other embodiments may provide the system100 to be entirely at one network location. For example, host system 100may reside entirely or substantially within host system 130, and even onone machine that comprises the host system. In such an embodiment,management and distribution system 100 may run as a component on thehost system 130. The host system 130 may rely on, for example,establishing a peer-to-peer connection with other remote devices using adirect socket connection or other type of peer or direct connectivity.

FIG. 2 illustrates hardware and process elements of a management anddistribution system, under an embodiment of the invention. In anembodiment, a host system 202 may include one or more processors 210that have access to a plurality of memory components 208. In oneembodiment, the host system 208 is provided substantially on onecomputing machine, so that the processors 210 and the memory components208 are contained within the housing of that machine. In such ascenario, the memory components 208 may form a combination of harddrive, flash memory, insertable accessory memory (SmartDisk flash, USBflash), optical media memory etc. In another embodiment, the host system202 may correspond to a network of devices and machines, such as in, forexample, a home network. In such an embodiment, the processors 210 andthe memory components 208 may reside on different machines. In anothervariation, the host system 202 is a personal network, such as describedin U.S. patent application Ser. No. 10/888,606. In the personal network,the memory components 208 may reside locally, on a local network, or ona wide area network, such as at an Internet account (YAHOO BRIEFCASE).

In an embodiment, the host system 202 includes a local port 222 and anetwork port 224. The host system 202 may use the local port 222 toreceive transmitted digital photographs and other media files across alocal connection. For example, the local port 222 may be used to importcaptured digital photographs 205 from an image capturing device 204,such as a digital camera. The network port 224 may connect the hostsystem 222 to the Internet, where downloaded images 206 may be obtained.Digital photographs and images may also be received on the host system202 from other network users across the network port 224. The digitalphotographs may be stored in the memory components 208.

The host system 202 includes a machine that has one or more of thememory components 208. The host system 202 may be referred to as theoriginating point for images stored in its memory components,particularly for images that were transferred in from over the localport 222. The originating point refers to the first computer systemwhere a digital photograph (or other media file) is stored for local enduser consumption. For example, a photograph downloaded to a user's harddrive (using network port 224), or transferred in from a camera (overlocal port 222) may be considered photographs for which that computersystem is an originating point. Images that were previously uploaded byone end user to an intermediate location then downloaded by another enduser would not serve as images for which the computer of the second enduser would be termed the originating point. In the example shown by FIG.2, the host system 210 may serve or include the machine that is theoriginating computer for downloaded images 206 and imported photographs205.

One or more service processes 215 may be performed within and/or outsidethe confines of host system 202 for purpose of enabling the digitalphotographs and media files stored in the memory components 208 to beshared with multiple other users. For example, the service processes 215may be performed by one or more processors 210 of host system 202,and/or of the network service (such as shown by FIG. 1) thatcommunicates with the host system 202.

One or more of the service processes 215 may generate image data 218 toenable one or more users of remote device 220 to view renditions(copies, reduction images etc.) of digital photographs and other mediafiles stored in the memory components 208. In one embodiment, the imagedata 215 may be generated by a first application (running one or more ofthe processes) that is aware of the media file contents of the memorycomponents. The first application may communicate the images to one ormore other processes/applications which then convert and/or configureimage data generated from the stored images for transmission to one ormore remote devices. As described by FIG. 1, service processes 215 mayalso include processes/applications for authenticating the users of theremote device, and for determining what image and media files that useris permitted to view (using, for example, an access control list).

According to one embodiment, digital photographs and images for whichhosting system 202 is the originating point may be shared with gueststhat access the host system 202 through the Internet or other datanetwork. The image data 218 conveyed to the guests may replicate theimages on their computer systems, or produce variations or alterationsof the original images. In an embodiment such as shown by FIG. 1, theimage data 218 may be communicated through use of the network servicewhich brokers the data transaction with the user of the remote device220. The image data 218 may be transmitted from the originating point toa destination on the remote device with no uploading from the hostsystem 202. Specifically, the host system 202 does not upload the imagesto an intermediate site.

In another embodiment, a peer-to-peer connection may be establishedbetween the host system 202 and the remote device 220 for transfer ofimage data 218. For example, the remote device 220 and the host system202 may be equipped with a peer-to-peer application or capability.

The user of the host system 202 may also enable the remote device 220 toselect or elect actions that the remote device user can trigger. Actiondata 216 may be transmitted using the processes 215 to enable the remotedevice to perform the actions. Any action the user of the remote device220 can perform may be previously designated or permitted from processes215. If the remote device user elects to perform the action, the actionis performed at least initially within the confines of the host system202, using the digital photographs as stored on the memory components208. For example, the guest operating the remote device may elect tohave a digital photograph printed, using functionality established onthe remote device by action data 216. Election of the action instructsthe host system 202 to perform the action. This may include copying theoriginal photograph, and packaging it for delivery to the print service.

The ability of the user of the remote device 220 to view digitalphotographs from the host system 202 and specify actions to be performedon those photographs may be programmatically established. Thus, the useof the host system 202 does not need to know when the remote device userattempts to view images, or perform actions on them.

Methodology

FIG. 3 illustrates a method for managing distribution of media files ona host system under an embodiment of the invention. A particular type ofmedia contemplate with FIG. 3 or digital photographs. In describing inembodiment of FIG. 3, reference may be made to elements of FIG. 1 forpurpose of illustrating suitable elements for performing a step orsub-step.

In step 310, host system 130 receives a request from a remote device 120to select from image files stored under the management of the hostsystem. As mentioned with, for example, embodiments of FIG. 1, therequest may originate from the user of the host system 130 operating aremote device, or from a guest user of the host system 130.

A check may be performed in step 320 to ensure the user is authorized.The access control list 142 may be referenced. The identifier used canbe one of design implementation. For example, any user may need tospecify a log-in and password, and/or e-mail address, matching a recordcontained in the host system user's access control list 142.

Step 330 provides the image data is generated for designated mediafiles. An embodiment provides that the host system user can specify andselect images that can be viewed remotely. Another embodiment providesthat the host system user can select different images or image sets fordifferent remote users.

In step 340, image data corresponding to the designated media files areprovided to the remote device from which the request was made. In oneembodiment, the image data is provided to the remote device without theneed for transferring the image data to intermediate memory locationwhere the remote device can perform a retrieval. Rather, the image datamay be transmitted to the remote device without uploading the image dataonto the intermediary. The image data may be transmitted through a peerconnection with the remote device (such as established through peerserver/client applications executing on two terminals), or relayedthrough the network service. According to an embodiment, neither caserequires an upload to be performed.

Along with transmission of image data, in action the remote user canperform may be specified in step 350. The user of the remote device mayelect to have the action performed. If the user elects the action to beperformed, the action is performed programmatically on the image filesresiding at the host system 360. For example, the images on the hostsystem may be copied for transmission to the third party service ornetwork site.

FIG. 4 provides a more detailed method by which digital photographs canbe distributed from a host system for consumption and use remotely,including by guests, under an embodiment of the invention. A method suchas described by FIG. 4 may be performed using a system such as describedin either FIG. 1 or 2. In particular, a method as described in FIG. 4may be performed with management and distribution system 100, using hostsystem 130 and network service 110. However, reference to numerals ofFIGS. 1 and 2 are for purpose of illustrating suitable components andelements for purpose of performing a step or substep.

In step 410, a user-designation is received which identifies a set ofshared image sets. For example, a user may identify a particular folderon a media center terminal as one that is to be shared with a class ofusers, then copy images into the folder.

Step 412 provides that the user defines who is in a class, or isotherwise granted permission to a particular folder. Different classesof people may be designated to different folders. The host system usermay identify individuals by any identifier, including email address,instant-message handle, name, log-in, and possibly password. In oneembodiment, the host system user provides identifiers for guests so thatany guest who accesses the network service will receive a prompt orquestion, the answer for which will match what the user has used forthat guest's identifier. For example, the network service 110 mayrequest a potential guest's email address and name, then be able tomatch the responses to what the host system user provided.

In step 420, the network service 110 may make files available fornetwork access by permitted remote users. For example, a processexecuting on the host system 130 or with the network service 110 mayidentify the folder, and pre-configure the files corresponding to thedigital photographs for transport across the Internet, and/or tospecific end devices. Additionally, the host system 130 may communicatesome or all of its access control list to the network service,sufficient to enable the network interface 110 to broker one or moreidentification operations on behalf of the host system 130.

At a subsequent time, step 422 provides that the network service 110receives a request from a remote user for access to the host system 130.For example, the network service 110 may receive an Internetcommunication from the remote device used by the requestor.

The network service 110 may identify information about the requestor, inorder to determine whether the requestor is permitted to access the hostsystem 130. In one implementation, the network interface 110 may promptthe user for one or more responses (e.g. name or email address), andthen compare the responses to an access control list completed by theuser of the host system 130.

In one scenario, the network service 110 handles numerous host systems130, and the identification process from the requestor also enables thenetwork service 110 to determine which particular host system therequestor seeks. Alternatively, the requestor makes the identificationof the host system 130. Once the host system 130 is identified, thenetwork service 110 may use a known network address to establishcommunication with the host system 130. The network service 110 mayforward the identification of the requestor and/or the request to thehost system 130.

In step 430, the host system 130 uses the communication from the networkservice 110 to determine (i) what images are folders are available tothat requestor, and optionally (ii) if any actions will be permitted bythe requestor. The host system 130 may reference the identification fromthe requestor with the access control list 142, which contains thestored instructions of the host system as to the permissions of therequestor.

Responsive to the request, step 432 provides that image data isgenerated from the digital photographs stored on the host system. Theimage data may be designated for the requestor, or a class that includesthe requestor. In one embodiment, the image data is a substantialreduction of the original digital photographs, such as a thumbnail.

In addition to image data, step 434 provides that action data may begenerated to establish functionality on the remote device of therequestor. The established functionality may be to enable the remotedevice of the requestor to perform a designated action, or set ofactions. Both the image data and the established functionality may beconfigured to be received and used on the remote device through use of aweb browser.

In step 436, image data and/or action data are transmitted to thenetwork service, for delivery to the remote device. In step 440, thenetwork service forwards the image data and the action data to theremote device. The network service 110 may supplement or produce one orboth of image data and action data. No upload is performed at thenetwork service or anywhere else prior to the network service relayingthe image and action data to the remote device. Rather, one embodimentprovides that the communication is transmitted responsively to the webbrowser of the requestor (in response to the request being made).Another embodiment provides that a peer connection is established totransmit the image and action data. In one variation, both the hostsystem and the remote device run an application to enable a peer-to-peerconnection.

The image data may be rendered on the remote device in the form of apreview or thumbnail image, although it is possible for the image datato be rich replicate or copy of the original. In one implementation, theaction data is provided on the remote device in the form of a selectableicon. The remote device user may make a selection of a particulardigital photograph, and an election to have a designated actionperformed at the host system, on behalf of the remote device. If morethan one action is provided for the remote device user, the user maymake a selection of what action or actions should be performed. In anexample provided by FIG. 4, the action that the remote device user canelect to perform is to have select digital photographs sent to acommercial print service. The remote device user may make the selectionof a particular image by performing a user-interface select operation onindividual renditions of the desired images provided from the hostsystem. For example, the remote device user may select the thumbnail ofthe desired image similar to an icon, or fill a check box field next toanother image. The remote device user may elect the action by clickingan icon, or performing some other similar action through theuser-interface provided on the remote device.

Assuming the remote device user elects to have select images printed, anembodiment provides that in step 442, the network service 110 performsseveral operations to broker a transaction between the user of theremote device and the print service. In one embodiment, the networkservice prompts the remote user to enter information for completing thetransaction, including payment information, name and address ofdelivery. In another embodiment, the network service 110 directs theremote device user to a third party transaction service (may be same ofdifferent than print service) to enable the remote device user tocomplete the transaction.

In step 444, a selection and instruction from the remote device areforwarded to the host system 130. The selection specifies what imagesthe remote device 120 wants actions to be performed on. The instructionselect the action offered, or select a particular one of multiple actionsmade possible. In the example discussed, the action is to send selectdigital photographs to the third-party print service. The networkservice 110 may provide any transactional information obtained from theremote device 120 to the host system 130. As one alternative, thenetwork service 110 may establish an order has been placed for theremote device user with the print service.

In step 450, the action specified from the remote device 120 isperformed on the original files from within the host system 130. In oneembodiment, the actions are initiated on the original stored file, or alocal copy of that file. In the example provided, the action performedmay correspond to digital photographs presented to and selected from theremote device 120 being sent to a network location of a print service.In one embodiment, a connection and/or relationship may be establishedwith the print service from either the network service 110 or the hostsystem 130 to enable the host system's transmission to transfer imagesto the print service with no intermediate uploading step. In oneembodiment, the host system 130 (or alternatively the network service110) is configured to contact the print queue of the printer service.For example, the host system 130 may have a network address of the printqueue pre-configured for its transmissions when instructed.Additionally, the host system 130 may transfer select images to theprint queue through a peer type communication, or alternatively byserving the select images to the queue, so that no uploading process isperformed in order to make the print service print the digitalphotographs. The host system 130 (or alternatively the network service110) may have established between them a socket communication channel tofacilitate the data transfer without uploading. Any intermediate serverto receive uploads for the print service may be bypassed.

While FIG. 4 illustrates particular steps or operations being performedon one of the host system 130 or network service 130, any or all of thesteps shown may be performed on either of the host system or networkservice. For example, a method such as described by FIG. 4 may beperformed entirely using processes executing on the host system 130, orentirely using processes executing on the network service 110.

Additionally, the particular order for steps recited in FIG. 3 or FIG. 4is one of design implementation. Performance of the steps in eithermethod is not order-dependent. One or more steps illustrated above maybe performed through programmatically implemented steps, includingthrough automated computer responses and actions.

Remote Display Examples

FIG. 5 illustrates an example of content and information generated on aremote device by the host system 130 transmitting image data and actiondata (either directly or through use of the network service). In FIG. 5,a presentation 510 on a display of a remote device is shown, tailoredfor a user that is a guest of the host system 130. The presentationincludes images 512, each of which correspond to a media file stored atthe host system 130. A personalized message 514 may be displayed to theuser (optionally specific to the user).

An action icon may also be presented to enable the user to have adesignated action performed on one or more of the media filescorresponding to the individual images. As described with otherembodiments, the action that can be performed from the remote device isto cause the media files represented by the images 512 to be sent to aprint service. The remote device user can specify the print actionwithout having to upload the images himself, or have the remote deviceupload any images. The images are transferred to the printer servicefrom the host system 130.

FIG. 6 illustrates another example of how an embodiment of the inventionmay be implemented, according to an embodiment of the invention. In FIG.6, a remote device 610 corresponds to a PDA or small form factor amobile computing device capable of Internet connectivity (an example ofa roaming device). A presentation 612 on a display 614 of that deviceincludes multiple thumbnails 618 (or reduced images), each of whichrepresent a digital photograph 628 stored on the media center computer620. The remote device 610 and the media center computer 620 maycommunicate across the Internet, either directly or indirectly through,for example, the network service (such as illustrated in FIG. 1).

The user of the remote device may correspond either to the same user ofthe host system (provided on media center computer 620), or a guest ofthe user of the media center computer 620. By making the selection ofthe thumbnail 618, and/or of the command icon 622 (for printing), theuser of the remote device 610 can direct the media center computer 620to forward digital photographs to a print service 630. Any transactionalinformation needed from the printer service 630 may be provided througheither the media center computer 620 (as stored information, or throughprompts with the remote device 610), through a broker (e.g. the networkservice or a third party payment service), or directly from the remotedevice (in coordination with the remote device providing the command).The transfer of digital photographs from the media center computer 620to the print service 630 may also be over a data network such as theInternet.

In an embodiment, communications between the media center computer 620and the remote device 610 require no upload. Thus, in one implementationthe images 618 may be rendered though a browser that runs on the remotedevice 610. The remote device user can utilize the media center computer620 to forward for printing any of the images 618. Thus, from theperspective of the remote device user, images 618 are forwarded to theprint service with no uploading. Even if an upload is performed from themedia center computer 620, the upload is transparent to the user of theremote device 610, as the action is performed from the media centercomputer 620 on behalf of the remote device user. However, as describedwith other embodiments, the media center computer 620 also performs noupload in transferring images 618 to the print service 630.

CONCLUSION

Although illustrative embodiments of the invention have been describedin detail herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. Thus, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

What is claimed is:
 1. A method for sharing content items, the methodbeing implemented by one or more processors and comprising: identifyinga plurality of content items that are stored on a personal network of auser, the personal network including one or more devices and at least afirst folder in which one or more content items in the plurality ofcontent items are provided; determining a set of permissions for thefirst folder based on user input, the set of permissions identifying oneor more recipients that are permitted to access the first folder using adevice that is external to the personal network; in response to one ormore requests from a device of a first recipient of the one or morerecipients, (i) providing content data to enable the device of the firstrecipient to display a rendition of each of the one or more contentitems; and (ii) performing an action specified by at least one of theone or more requests of the first recipient, the action includingproviding a copy of at least a first content item of the one or morecontent items to a network location that is external to the personalnetwork of the user and specified by the one or more requests, whereinthe copy is provided without a computer on the personal networkuploading the copy to an intermediate computer or the device of thefirst recipient downloading the copy.
 2. The method of claim 1, whereinidentifying the plurality of content items includes scanning at leastthe one or more devices for content items.
 3. The method of claim 1,wherein providing content data includes providing a thumbnail image ofat least the first content item.
 4. The method of claim 1, wherein thefirst content item corresponds to a video.
 5. The method of claim 1,wherein the first folder is provided on a host computer that is operatedby the user.
 6. The method of claim 5, wherein performing the action isperformed by the host computer.
 7. The method of claim 6, furthercomprising scanning, on the host computer, one or more other computingdevices that are part of the personal network of the user in order toidentify the plurality of content items.
 8. The method of claim 1,wherein performing the action includes providing the copy to athird-party service.
 9. The method of claim 1, further comprisingidentifying the first recipient using an email address of the firstrecipient.
 10. The method of claim 1, wherein the device of therecipient is a roaming device.
 11. A computer system comprising: amemory that stores a set of instructions; one or more processors thatexecute the instructions to: identify a plurality of content items thatare stored on a personal network of a user, the personal networkincluding one or more devices and at least a first folder in which oneor more content items in the plurality of content items are provided;determine a set of permissions for the first folder based on user input,the set of permissions identifying one or more recipients that arepermitted to access the first folder using a device that is external tothe personal network; in response to one or more requests from a deviceof a first recipient of the one or more recipients, (i) provide contentdata to enable the device of the first recipient to display a renditionof each of the one or more content items; and (ii) perform an actionspecified by at least one of the one or more requests of the firstrecipient, the action including providing a copy of at least a firstcontent item of the one or more content items to a network location thatis external to the personal network of the user and specified by the oneor more requests, wherein the copy is provided without a computer on thepersonal network uploading the copy to an intermediate computer or thedevice of the first recipient downloading the copy.
 12. The computersystem of claim 11, wherein the one or more processors identify theplurality of content items by scanning at least the one or more devicesfor content items.
 13. The computer system of claim 11, wherein the oneor more processors provide the content data by providing a thumbnailimage of at least the first content item.
 14. The computer system ofclaim 11, wherein the first content item corresponds to a video.
 15. Thecomputer system of claim 11, wherein the computer system includes a hostcomputer operated by the user on which the first folder is provided. 16.The computer system of claim 15, wherein host computer performs theaction specified by at least one of the one or more requests of thefirst recipient.
 17. The computer system of claim 16, wherein the one ormore processors execute the instructions to scan, on the host computer,one or more other computing devices that are part of the personalnetwork of the user in order to identify the plurality of content items.18. The computer system of claim 11, wherein the one or more processorsperform the action by providing the copy to a third-party service. 19.The computer system of claim 11, wherein the one or more processorsexecute the instructions by identifying the first recipient using anemail address of the first recipient.
 20. The computer system of claim11, wherein the device of the recipient is a roaming device.
 21. Anon-transitory computer-readable medium that stores instructions, thatwhen executed by one or more processors of a computing device, causesthe computing device to perform operations comprising: identifying aplurality of content items that are stored on a personal network of auser, the personal network including one or more devices and at least afirst folder in which one or more content items in the plurality ofcontent items are provided; determining a set of permissions for thefirst folder based on user input, the set of permissions identifying oneor more recipients that are permitted to access the first folder using adevice that is external to the personal network; in response to one ormore requests from a device of a first recipient of the one or morerecipients, (i) providing content data to enable the device of the firstrecipient to display a rendition of each of the one or more contentitems; and (ii) performing an action specified by at least one of theone or more requests of the first recipient, the action includingproviding a copy of at least a first content item of the one or morecontent items to a network location that is external to the personalnetwork of the user and specified by the one or more requests, whereinthe copy is provided without a computer on the personal networkuploading the copy to an intermediate computer or the device of thefirst recipient downloading the copy.
 22. The non-transitorycomputer-readable medium of claim 21, wherein identifying the pluralityof content items includes scanning at least the one or more devices forcontent items.
 23. The non-transitory computer-readable medium of claim21, wherein providing the content data includes providing a thumbnailimage of at least the first content item.
 24. The non-transitorycomputer-readable medium of claim 21, wherein the first content itemcorresponds to a video.
 25. The non-transitory computer-readable mediumof claim 21, wherein the personal network includes a host computeroperated by the user on which the first folder is provided.
 26. Thenon-transitory computer-readable medium of claim 25, wherein the hostcomputer includes the one or more processors that execute theinstructions to perform the action specified by at least one of the oneor more requests of the first recipient.
 27. The non-transitorycomputer-readable medium of claim 26, further comprising instructionsthat, when executed by the one or more processors of the host computer,cause the host computer to scan one or more other computing devices thatare part of the personal network of the user in order to identify theplurality of content items.
 28. The non-transitory computer-readablemedium of claim 21, wherein performing the action includes providing thecopy to a third-party service.
 29. The non-transitory computer-readablemedium of claim 21, further comprising instructions that, when executedby the one or more processors of the computing device, cause thecomputing device to identify the first recipient using an email addressof the first recipient.
 30. The non-transitory computer-readable mediumof claim 21, wherein the device of the recipient is a roaming device.